package gestores;

import java.sql.SQLException;
import java.util.Hashtable;
import java.util.Vector;

import javax.swing.DefaultListModel;

import dao.DiscosDAO;
import dao.GruposDAO;
import dao.MediaDAO;
import dao.TemasDAO;

import entidades.Disco;
import entidades.Grupo;
import entidades.Tema;

public class Sistema {

	public static void cargarDiscos(Vector<Disco> listaDiscos) {
		
		try {
			DiscosDAO.cargarDiscos(listaDiscos);
		} catch (SQLException e) {
			e.printStackTrace();
		}
		
	}

	public static void cargarGrupos(Vector<Grupo> listaGrupos) {
		try {
			GruposDAO.cargarGrupos(listaGrupos);
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}

	public static void cargarTemas(Vector<Tema> listaTemas) {
		try {
			TemasDAO.cargarTemas(listaTemas);
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}

	public static void crearBaseDatos() {

		try {
			GruposDAO.crearTablaGrupos();
			DiscosDAO.crearTablaDiscos();
			TemasDAO.crearTablaTemas();
			//MediaDAO.crearTablaReproductor();
			//MediaDAO.crearTablaOtroReproductor();
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}

	public static int getIdUltimoGrupo() {
		try {
			return GruposDAO.getIdUltimoGrupo();
		} catch (SQLException e) {
			e.printStackTrace();
		}
		
		return 0;
	}

	public static int getIdUltimoDisco() {
		try {
			return DiscosDAO.getIdUltimoDisco();
		} catch (SQLException e) {
			e.printStackTrace();
		}
		
		return 0;
	}

	public static int getIdUltimoTema() {
		try {
			return TemasDAO.getIdUltimoTema();
		} catch (SQLException e) {
			e.printStackTrace();
		}
		
		return 0;
	}

	public static Hashtable<String, Integer> gruposYaCargados() {
		
		try {
			return GruposDAO.gruposYaCargados();
		} catch (SQLException e) {
			e.printStackTrace();
		}
		
		return new Hashtable<String, Integer>();
	}

	public static Hashtable<String, Integer> discosYaCargados() {
		
		try {
			return DiscosDAO.discosYaCargados();
		} catch (SQLException e) {
			e.printStackTrace();
		}
		
		return new Hashtable<String, Integer>();
	}

	public static Hashtable<String, Integer> temasYaCargados() {
		try {
			return TemasDAO.temasYaCargados();
		} catch (SQLException e) {
			e.printStackTrace();
		}
		
		return new Hashtable<String, Integer>();
	}

	public static DefaultListModel obtenerListaTemas(String busqueda, Hashtable<Integer, Tema> temaId, int caso) {
		
		try {
			return MediaDAO.obtenerListaTemas(busqueda, temaId, caso);
		} catch (SQLException e) {
			e.printStackTrace();
		}

		return new DefaultListModel();
	}

	public static DefaultListModel obtenerListaDiscos(String busqueda,Hashtable<Integer, Disco> discoId, int caso) {
		try {
			return MediaDAO.obtenerListaDiscos(busqueda, discoId, caso);
		} catch (SQLException e) {
			e.printStackTrace();
		}
		
		return new DefaultListModel();
	}

	public static String getTemasDisco(Disco disco) {
		try {
			return MediaDAO.getTemasDisco(disco);
		} catch (SQLException e) {
			e.printStackTrace();
		}
		
		return new String("");
	}

	public static DefaultListModel obtenerListaGrupos(String busqueda, Hashtable<Integer, Grupo> grupoId, int caso) {
		try {
			return MediaDAO.obtenerListaGrupos(busqueda, grupoId, caso);
		} catch (SQLException e) {
			e.printStackTrace();
		}
		
		return new DefaultListModel();
	}

	public static String getTemasGrupo(Grupo grupo) {
		try {
			return MediaDAO.getTemasDisco(grupo);
		} catch (SQLException e) {
			e.printStackTrace();
		}
		
		return new String("");
	}

	public static String getNombreReproductor() {
		
		try {
			return MediaDAO.getNombreReproductor();
		} catch (SQLException e) {
			e.printStackTrace();
		}
	
		return null;
	}

	public static void setReproductorSeleccionado(String reproductor) {
		try {
			MediaDAO.setReproductorSeleccionado(reproductor);
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}

	public static void quitarViejoReproductor() {
		try {
			MediaDAO.quitarViejoReproductor();
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}

	public static void cargarDatosOtroReproductor(String textoEncolar, String textoEncolarLista,String textoEncolarReproducir, String textoEncolarReproducirLista, String textoReproductor) {
		try {
			MediaDAO.cargarDatosOtroReproductor(textoEncolar, textoEncolarLista,textoEncolarReproducir, textoEncolarReproducirLista, textoReproductor);
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}

	public static String[] getComandosOtroReproductor() {
		try {
			return MediaDAO.getComandosOtroReproductor();
		} catch (SQLException e) {
			e.printStackTrace();
		}
		
		return null;
	}

	public static void crearTablaReproductor() {
		try {
			MediaDAO.crearTablaReproductor();
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}

	public static void crearTablaOtroReproductor() {
		try {
			MediaDAO.crearTablaOtroReproductor();
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
}
